export function isPlainObject(value:unknown): value is object {
  return Object.prototype.toString.call(value) === '[object Object]'
}

export function isArray(value:unknown): value is unknown[] {
  return Object.prototype.toString.call(value) === '[object Array]'
}

export function isEmptyObject(value:unknown) {
  return JSON.stringify(value) === '{}'
}

export function isIntegerKey(key:string) {
  return parseInt(key)+'' === key
}

export function hasOwn<T extends object>(obj:T, key:string|symbol) {
  return Object.prototype.hasOwnProperty.call(obj, key)
}

export function isFunction(value:unknown) {
  return typeof value === 'function'
}

export function hasChanged() {}
